en = {"A":"01","a":"02","B":"03","b":"04","C":"05","c":"06",
      "D":"07","d":"08","E":"09","e":"10","F":"11","f":"12",
      "G":"13","g":"14","H":"15","h":"16","I":"17","i":"18",
      "J":"19","j":"20","K":"21","k":"22","L":"23","l":"24",
      "M":"25","m":"26","N":"27","n":"28","O":"29","o":"30",
      "P":"31","p":"32","Q":"33","q":"34","R":"35","r":"36",
      "S":"37","s":"38","T":"39","t":"40","U":"41","u":"42",
      "V":"43","v":"44","W":"45","w":"46","X":"47","x":"48",
      "Y":"49","y":"50","Z":"51","z":"52","=":"53","-":"54",
      " ":"55","0":"56","1":"57","2":"58","3":"59","4":"60",
      "5":"61","6":"62","7":"63","8":"64","9":"65",}

de = {"01":"A","02":"a","03":"B","04":"b","05":"C","06":"c",
      "07":"D","08":"d","09":"E","10":"e","11":"F","12":"f",
      "13":"G","14":"g","15":"H","16":"h","17":"I","18":"i",
      "19":"J","20":"j","21":"K","22":"k","23":"L","24":"l",
      "25":"M","26":"m","27":"N","28":"n","29":"O","30":"o",
      "31":"P","32":"p","33":"Q","34":"q","35":"R","36":"r",
      "37":"S","38":"s","39":"T","40":"t","41":"U","42":"u",
      "43":"V","44":"v","45":"W","46":"w","47":"X","48":"x",
      "49":"Y","50":"y","51":"Z","52":"z","53":"=","54":"-",
      "55":" ","56":"0","57":"1","58":"2","59":"3","60":"4",
      "61":"5","62":"6","63":"7","64":"8","65":"9",}

class Core() :
    def __init__(self) :
        pass

    def encode(self,date,key) :
        ent = {"0":key[0],"1":key[1],"2":key[2],"3":key[3],"4":key[4],"5":key[5],"6":key[6],"7":key[7],"8":key[8],"9":key[9]}
        data = ""
        for s in date :
            data = data + en[s]
        date = ""
        for s in data :
            date = date + ent[s]
        return(date)

    def decode(self,date,key) :
        det = {key[0]:"0",key[1]:"1",key[2]:"2",key[3]:"3",key[4]:"4",key[5]:"5",key[6]:"6",key[7]:"7",key[8]:"8",key[9]:"9"}
        data = ""
        for s in date :
            data = data + det[s]
        date = ""
        for s in list(range(0,len(data),2)) :
            s = int(s)
            date = date + de[data[s:s + 2]]
        return(date)
